<?php namespace Common\Model;
use Hdphp\Model\Model;
/**
* 前台用户表模型
* 田昭鹏
*/
class Huser extends Model{
	// 指定操作的表
	protected $table='huser';
	
	// 登录方法
	public function register(){
		// 自动验证
		$this->validate=array(
			array('username','unique','用户名已存在',3,3),
			array('password','required','密码不能为空',3,3),
			array('password','minlen:6','密码长度不能小于6位',3,3),
			array('password','maxlen:16','密码长度不能大于16位',3,3),
			array('confirmPass','required','确定密码不能为空',3,3),
			array('password','confirm:confirmPass','两次密码输入不一致',3,3),
		);
		if(!$this->create()) return FALSE;
		// 判断验证码
		if(isset($_POST['code']) && $_POST['code']!=$_SESSION['code']){
			$this->error='验证码不正确';
			return FALSE;
		};
		// p($this->data);die;
		$username=$_POST['username'];
		$password=$_POST['password'];
		// 进行加密
		$this->data['password']=$this->enctype($password);
		// 添加进数据库
		$result=$this->add();
		if(!$result){
			$this->error='注册失败';
			return FALSE;
		}
		// 存入session
		$_SESSION['hname']=$username;
		// 返回成功
		return TRUE;
	}
	// 加密方法
	private function enctype($password){
		return md5(md5($password).'fanke');
	}



	// 登陆方法
	public function login(){
		// 自动验证
		$this->validate=array(
			array('username','required','用户名不能为空',3,3),
			array('password','required','密码不能为空',3,3),
		);
		if(!$this->create()) return FALSE;
		// 拉取用户数据
		$username=$_POST['username'];
		$userData=$this->where('username',$username)->find();
		// 判断用户名是否存在
		if(!$userData){
			$this->error='用户名不存在';
			return FALSE;
		}
		// 判断密码是否正确
		$password=$this->enctype($_POST['password']);
		if($password!=$userData['password']){
			$this->error='密码不正确';
			return FALSE;
		}
		// 存入session
		$_SESSION['hname']=$_POST['username'];
		return TRUE;
	}

	public function edit(){
		// p(Q('post.'));
        // 重组数组
        $data=Q('post.');
        $data['address']=implode('|', $data['address']);
		 // 自动验证
        $this->validate=array(
            array('hid','required','未知错误！',3,3),
            // array('nickname','unique','昵称已存在',3,3)
            );
        if(!$this->create($data)){
            $data=array('status'=>false,'message'=>$this->getError());
        }else{
            // 修改数据库
            $this->save();
            // p($result);
            $data=array('status'=>true,'message'=>'信息更新成功！');
        }
        return $data;
	}


	// 修改密码方法
	public function changePass(){
		$this->validate=array(
			array('password','required','密码不能为空',3,3),
			array('newPassword','minlen:6','密码长度不能小于6位',3,3),
			array('newPassword','maxlen:16','密码长度不能大于16位',3,3),
			array('confirmPassword','required','确定密码不能为空',3,3),
			array('newPassword','confirm:confirmPassword','两次密码输入不一致',3,3),
			);
		// 自动验证
		if(!$this->create()) return FALSE;
		// 判断验证码
		if($_SESSION['code']!=Q('post.passcode')){
			$this->error='验证码不正确！';
			return FALSE;
		}
		// 判断原密码是否正确
		// 1.调取用户数据
		$userData=$this->where('username',$_SESSION['hname'])->find();
		// p($userData);
		// 2.进行判断
		$oldPass=$this->enctype(Q('post.password'));
		// p($oldPass);
		if($oldPass!=$userData['password']){
			$this->error='原密码不正确';
			return FALSE;
		}
		$newPassword=$this->enctype(Q('post.newPassword'));
		// 进行修改
		$this->where('hid',$userData['hid'])->update(array('password'=>$newPassword));
		return TRUE;
	}
}





 ?>